[hot_reload] Don't look at delta method table rows #57798
Merged
Add this suggestion to a batch that can be applied as a single commit.
This suggestion is invalid because no changes were made to the code.
Suggestions cannot be applied while the pull request is closed.
Suggestions cannot be applied while viewing a subset of changes.
Only one suggestion per line can be applied in a batch.
Add this suggestion to a batch that can be applied as a single commit.
Applying suggestions on deleted lines is not supported.
You must change the existing code in this line in order to create a valid suggestion.
Outdated suggestions cannot be applied.
This suggestion has been applied or marked resolved.
Suggestions cannot be applied from pending reviews.
Suggestions cannot be applied on multi-line comments.
Suggestions cannot be applied while the pull request is queued to merge.
Suggestion cannot be applied right now. Please check back later.
The issue is that the ParamList column in EnC deltas is a "suppressed column" that has the value 0. So when a method is updated if we use the value directly, we will break, for example -
mono_metadata_get_param_attrs
which expects a non-zero index in that column.CoreCLR solves this by having a set of suppressed columns that are never updated by deltas. (CoreCLR's model is to directly mutate the tables of the baseline image). In Mono we can eventually do the same thing by writing the value from the previous generation into the current delta's row. But right now since we don't allow parameter modifications, and the only column on a Method table that we allow to be modified is the RVA - which we look up specially - we can just always return the baseline image row for the method table.
Fixes #57643